#include "systick.h"

/************************************************************************
*函数名：Systick_Init
*函数功能：系统滴答定时器初始化配置函数
*函数参数：无
*函数返回值：无
*函数说明：
*				时钟频率：168Mhz（每秒钟减少计数值168M）
*				重装载计数值：168000（完成一次重装载，需要1ms）
*************************************************************************/
void Systick_Init(void)
{
	//重装载数值寄存器
	SysTick->LOAD = 168000-1;//最大值：16777216-1‬
	//当前数值寄存器
	SysTick->VAL = 0;//写入任何值都会清零
	//控制及状态寄存器
	SysTick->CTRL |= (1<<2);//选择时钟源：内核时钟（168Mhz）
	SysTick->CTRL |= (1<<1);//使能SysTick中断
	SysTick->CTRL |= (1<<0);//使能SysTick定时器
}

/************************************************************************
*函数名：SysTick_Handler
*函数功能：SysTick中断服务函数
*函数参数：无
*函数返回值：无
*函数说明：
*************************************************************************/
void SysTick_Handler(void)
{
	static u32 systime = 0;

	if (SysTick->CTRL & (1<<16))//如果一次计时结束（读取第16位会将其清零）
	{
		systime++;
		if (systime%1000 == 0)//每经过1s
		{
			printf("systime = %d ms\n",systime);
			ADC1_Getdata();
		}
//		if (systime%400 == 0)//每经过400ms
//			IWDG_Feed();
	}
}
